import { getTags } from '@/services/tags';

export default {
    // 调用 model 的时候通过命名空间调用，不要和其他 model 同名
    namespace: 'tags',

    // 状态，和 react 中的 state 类似，和 redux 中保存的 state 一样
    state: {
        tagsList: [],
    },

    // 调用服务端接口，获取数据
    effects: {
        *fetchTags({ payload, callback }, { put, call }) {
            //    获取 tags 数据
            const response = yield call(getTags);

            // 调用 reducers 传递数据
            yield put({
                // 类似于 redux 中 action 的 type
                type: 'setTagsList',
                payload: response,
            });
        },
    },

    // 更新 state
    reducers: {
        setTagsList(state, action) {
            return { ...state, tagsList: action.payload };
        },
    },
};
